geocache_container wpt_container(const QString&);
-// Compensate for most of class waypt still using C strings and needing
-// copies anyway.
-char* ShimString(const QString& s)
-{
- return xstrdup(s.toUtf8().data());
-}
-char* ShimString(const QStringRef& s)
-{
- return xstrdup(s.toString().toUtf8().data());
-}
-
-double ShimAttributeDouble(const QXmlStreamAttributes& a, const QString& v)
-{
- QString rv = a.value(v).toString();
- return rv.toDouble();
-}
-
void GeoReadLoc()
{
waypoint* wpt = NULL;
wpt->altitude = 0;
} else if (current_tag == "/loc/waypoint/name") {
QXmlStreamAttributes a = reader.attributes();
- wpt->shortname = ShimString(a.value("id"));
- wpt->description = ShimString(reader.readElementText());
+ wpt->shortname = a.value("id").toString();
+ wpt->description = reader.readElementText();
} else if (current_tag == "/loc/waypoint/coord") {
QXmlStreamAttributes a = reader.attributes();
- wpt->latitude = ShimAttributeDouble(a, "lat");
- wpt->longitude = ShimAttributeDouble(a, "lon");
+ wpt->latitude = a.value("lat").toString().toDouble();
+ wpt->longitude = a.value("lon").toString().toDouble();
} else if (current_tag == "/loc/waypoint/type") {
wpt->icon_descr = reader.readElementText();
} else if (current_tag == "/loc/waypoint/link") {
* Route-specific tags.
*/
case tt_rte_name:
- rte_head->rte_name = xstrdup(cdatastr);
+ rte_head->rte_name = cdatastr;
break;
case tt_rte:
break;
wpt_tmp = NULL;
break;
case tt_rte_desc:
- rte_head->rte_desc = xstrdup(cdatastr);
+ rte_head->rte_desc = cdatastr;
break;
case tt_rte_number:
rte_head->rte_num = cdatastr.toInt();
* Track-specific tags.
*/
case tt_trk_name:
- trk_head->rte_name = xstrdup(cdatastr);
+ trk_head->rte_name = cdatastr;
break;
case tt_trk:
break;
wpt_tmp = NULL;
break;
case tt_trk_desc:
- trk_head->rte_desc = xstrdup(cdatastr);
+ trk_head->rte_desc = cdatastr;
break;
case tt_trk_number:
trk_head->rte_num = cdatastr.toInt();
case tt_wpt_name:
case tt_rte_rtept_name:
case tt_trk_trkseg_trkpt_name:
- wpt_tmp->shortname = xstrdup(cdatastr);
+ wpt_tmp->shortname = cdatastr;
break;
case tt_wpt_sym:
case tt_rte_rtept_sym:
case tt_wpt_cmt:
case tt_rte_rtept_cmt:
case tt_trk_trkseg_trkpt_cmt:
- wpt_tmp->description = xstrdup(cdatastr);
+ wpt_tmp->description = cdatastr;
break;
case tt_wpt_desc:
case tt_trk_trkseg_trkpt_desc: